iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
Vue.js

I need VUE.系列 第 24

Day21 迷你小專案之 CSS 調整器(上)

  • 分享至 

  • xImage
  •  

終於來到迎接小專案測試的一天,我們要來製作一個小小的 CSS 調整器!

這裡稍微調整了一下課程的範本以配合先前的版面及脈絡,長相如下:

https://ithelp.ithome.com.tw/upload/images/20230925/20140492ei12SoEzcO.png

如果不喜歡這個樣式也可以單純的只上 code 並清除其它的樣式資料唷。

範例如下:

<div class="AvaterBox flex">
  <!-- Avatar Box -->
  <div class="flex items-center justify-center min-w-[200px] min-h-[200px] border border-gray-300">
    <div class="bg-stone-500 min-w-[100px] min-h-[100px] rounded-full flex items-center justify-center">Avatar</div>
  </div>
  <!-- CSS editor -->
  <div class="block text-left w-full">
    <div class="ml-2">
      <label for="avatarSize">Size: 100 px</label>
      <input type="range" id="avatarSize" class="block w-full mb-2" min="100" max="180" />
      <label for="avatarColor">Color: stone-500 from TailwindCSS</label>
      <input type="range" id="avatarColor" class="block w-full mb-2" min="100" max="900" step="100" />
      <label for="avatarRotateX">Rotate X: 0 deg.</label>
      <input type="range" id="avatarRotateX" class="block w-full mb-2" min="-180" max="180" />
      <label for="avatarRotateY">Rotate Y: 0 deg.</label>
      <input type="range" id="avatarRotateY" class="block w-full mb-2" min="-180" max="180" />
      <label for="avatarRotateZ">Rotate Z: 0 deg.</label>
      <input type="range" id="avatarRotateZ" class="block w-full mb-2" min="-180" max="180" />
      <button type="button" class="bg-gray-600">Reset</button>
      <button type="button" class="bg-gray-600 ml-5">Copy</button>
    </div>
  </div>
</div>

以上分為 Avatar 預覽及 CSS 編輯器的 template 原始碼( 即 HTML )。

好吧,我承認每當腦袋空白都會偷瞄一眼,不過這也是有購買課程的好處吧,隨時都可以看一下提示,如果準備好的話就跟著一起進行調整吧!

首先將 Size, Color, Rotate X, Rotate Y, Rotate Z 初始值輸入進 data(){...} 裡,其內容按範例如下( 這裡完全可以自由調整,不需要跟我一樣,但必須與自己建立的 template 相同 ):

  avatarSize: 100,
  avatarColor: 500,
  avatarRotateX: 0,
  avatarRotateY: 0,
  avatarRotateZ: 0

接下來就一步步地進行資料綁定,先處理 label 的部分,使用 v-model 讓文字能動態顯示,修改的內容如下:

<label for="avatarSize">Size: {{ avatarSize }} px</label>
<input type="range" id="avatarSize" class="block w-full mb-2" min="100" max="180" v-model="avatarSize" />
<label for="avatarColor">Color: stone-{{ avatarColor }} from TailwindCSS</label>
<input type="range" id="avatarColor" class="block w-full mb-2" min="100" max="900" step="100" v-model="avatarColor" />
<label for="avatarRotateX">Rotate X: {{ avatarRotateX }} deg.</label>
<input type="range" id="avatarRotateX" class="block w-full mb-2" min="-180" max="180" v-model="avatarRotateX" />
<label for="avatarRotateY">Rotate Y: {{ avatarRotateY }} deg.</label>
<input type="range" id="avatarRotateY" class="block w-full mb-2" min="-180" max="180" v-model="avatarRotateY"/>
<label for="avatarRotateZ">Rotate Z: {{ avatarRotateZ }} deg.</label>
<input type="range" id="avatarRotateZ" class="block w-full mb-2" min="-180" max="180" v-model="avatarRotateZ"/>
<button type="button" class="bg-gray-600">Reset</button>
<button type="button" class="bg-gray-600 ml-5">Copy</button>

https://ithelp.ithome.com.tw/upload/images/20230925/20140492Pgmz1IQnVu.png

如果進行右邊的編輯器調整,便可以看到數字的變化,非常有成就感吧!

https://ithelp.ithome.com.tw/upload/images/20230925/20140492XGC181dE1e.png

接著就是將資料綁到預覽圖片上,由於又超過了睡覺時間,所以接下來的部分就留到明日再戰囉。


上一篇
Day20. 做個 list 之 key
下一篇
Day22 迷你小專案之 CSS 調整器(下)-- 翻車惹
系列文
I need VUE.33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言